1. Field of the Invention
The present invention pertains to the field of communication networks. More particularly, this invention relates to the maintenance of database consistency among the nodes of a communication network.
2. Background
Prior packet switching communication networks, such as asynchronous transfer mode communication networks, are typically comprised of a set of communication nodes coupled for communication over a set of high speed communication links. Such a communication network usually enables communication among a wide variety of communication devices including voice, data, video, and fax devices.
The topology of such a communication network typically enables the establishment of a variety of communication paths between any two communication nodes in the communication network. Such a communication path is typically referred to as a virtual circuit in the communication network. Typically, a physical path through the communication nodes for such a virtual circuit is established according to the bandwidth utilization requirements for the virtual circuit and the available resources in the communication nodes and the available bandwidth on the high speed communication links.
In addition, the communication nodes in such a network may implement standby or redundant elements such as auxiliary processors. Such a redundant implementation enables the communication node to switch from a main processor to an auxiliary processor upon a main processor failure. Such a main processor to auxiliary processor switchover typically prevents failure of the communication node and consequential losses in communication throughout the communication network when such a failure occurs. Typically, the roles of main and auxiliary processors are not fixed to a particular module or circuit board. The active processor may be referred to as "main" and the non-active processor as "auxiliary".
Typically, each communication node in such a network maintains a set of routing databases that specify the routing of all virtual circuit paths through the communication links and communication nodes of the network. In addition, such routing databases may specify the network resources allocated to the virtual circuits. Typically, the main processor in such a communication node maintains and updates a main routing database while the auxiliary processor maintains and updates an auxiliary routing database that reflects the exact contents of the main routing database. Such an updated auxiliary database enables rapid switchover from the main processor to the auxiliary processor upon a failure in the main processor or main processor software.
A virtual circuit is typically established in such a communication network by transferring routing messages to each communication node. The routing messages usually specify a physical path through the communication network and a corresponding set of communication resources for the virtual circuit. The routing messages enable the main processor in each communication node to update the internal main routing database. In addition, each main processor typically causes the corresponding auxiliary processor to update the internal auxiliary routing database to reflect the new routing information.
Virtual circuit routing usually occurs at connection set-up time. Virtual circuit routing also typically occurs in response to link failures in the network which is referred to as rerouting. The processor of rerouting involves selection of a path which does not include the failed link. Updates typically occur in discrete messages of logical connection information and virtual circuit information.
Unfortunately, inconsistencies among the routing databases in such a communication network may arise if a main processor to auxiliary processor switchover occurs while a virtual circuit is being established and routed through the communication network. For example, a failure in a main processor of one of the communication nodes may cause a switchover to the auxiliary processor before the corresponding auxiliary routing database is updated with information for a newly established or rerouted virtual circuit.
As a consequence, the activated auxiliary processor does not have an updated view of the virtual circuits and configuration of the communication network. Such losses in database integrity can cause a variety of errors in the communication network. For example, such losses in database integrity may cause the over utilization of one or more of the communication links in the communication network or a loss of service. In addition, such losses in database integrity may cause the improper allocation of communication resources in the communication network for subsequently established virtual circuits.